package com.tju.resource.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

/**
 * 订单表
 *
 * @TableName tb_order
 */
@Data
public class TbOrder {
    /**
     * 订单id
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    /**
     * 客户名称
     */
    @TableField(exist = false)
    private String clientName;
    /**
     * 客户id
     */
    private Long clientId;
    /**
     * 客户编号
     */
    @TableField(exist = false)
    private String clientCode;
    /**
     * 订单号
     */
    @NotNull(message = "请输入订单号！")
    private String orderNumber;

    /**
     * 订单数
     */
    private Long orderPcs;

    /**
     * 计划数
     */
    private Long planNumber;

    /**
     * 交期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date delivery;

    /**
     * 是否需要审核(0:不需要1:需要)
     */
    private Long checkOrder;
    /**
     * 客户型号
     */
    @TableField(exist = false)
    private String customer;
    /**
     * 客户id
     */
    private Long customerId;
    /**
     * 审核(0:未审核:1:审核通过)
     */
    private Long approve;
    /**
     * 订单状态(0:未完成 1:已完成)
     */
    private Long orderState;
    /**
     * 订单日期
     */
    private Date orderDate;

    /**
     * 客户付款条件
     */
    @TableField(exist = false)
    private String payment;

    /**
     * 客户运输方式
     */
    @TableField(exist = false)
    private String typeOfShipping;
    /**
     * 客户送货地址
     */
    @TableField(exist = false)
    private String address;

    /**
     * 客户详细地址
     */
    @TableField(exist = false)
    private String detailedAddress;

    /**
     * 客户电话
     */
    @TableField(exist = false)
    private String clientPhone;

    /**
     * 客户传真号码
     */
    @TableField(exist = false)
    private String clientFaxPhone;

    /**
     * 紧急程度(0:普通1:不紧急2:紧急)
     */
    private Integer emergency;
    /**
     * 创建者
     */
    private String createBy;
    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新者
     */
    private String updateBy;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 备注
     */
    private String remark;
    /**
     * 物料id
     */
    @TableField(exist = false)
    private Long[] matlId;
    /**
     * 物料对象
     */
    @TableField(exist = false)
    private List<TbOrdMatl> listOrdMatl;
    /**
     * 物料对象
     */
    @TableField(exist = false)
    private List<TbMaterial> tbMaterial;

    /**
     * 物料对象
     */
    @TableField(exist = false)
    private TbMaterial material;
    /**
     * 指令选中
     */
    @TableField(exist = false)
    private boolean disabled;
    /**
     * 生产计划选中
     */
    @TableField(exist = false)
    private boolean selected;
}